🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / feature / car / src / main / kotlin / org / meshtastic / feature / car / util / NodeSubtitleFormatter.kt
Displaying Raw • Download
feature/car/src/main/kotlin/org/meshtastic/feature/car/util/NodeSubtitleFormatter.kt 2d20cd8a4708e2ef66e98d5259f3a97ec93f240a (2d20cd8a) Text, 3.43 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.feature.car.util
Tff7b72import T7ee787android.content.Context
Tff7b72import T7ee787android.text.Spannable
Tff7b72import T7ee787android.text.SpannableString
Tff7b72import T7ee787androidx.car.app.model.CarColor
Tff7b72import T7ee787androidx.car.app.model.CarText
Tff7b72import T7ee787androidx.car.app.model.ForegroundCarColorSpan
Tff7b72import T7ee787org.meshtastic.core.common.util.DateFormatter
Tff7b72import T7ee787org.meshtastic.feature.car.R
Tff7b72import T7ee787org.meshtastic.feature.car.model.NodeUi
Tff7b72import T7ee787org.meshtastic.feature.car.model.SignalQuality
T8b949e/** Shared formatter for node subtitle text with signal coloring and responsive variants. */
Tff7b72object T56d364NodeSubtitleFormatter Tb4b4b4{
Tff7b72fun Td2a8ffformatTb4b4b4(Te6edf3contextTb4b4b4: Te6edf3ContextTb4b4b4, Te6edf3nodeTb4b4b4: Te6edf3NodeUiTb4b4b4)Tb4b4b4: Te6edf3CarText Tb4b4b4{
Tff7b72val Te6edf3signalLabel Tff7b72= Te6edf3signalLabelTb4b4b4(Te6edf3contextTb4b4b4, Te6edf3nodeTb4b4b4.Te6edf3signalQualityTb4b4b4)
Tff7b72val Te6edf3battery Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3batteryPercentTff7b72?.Te6edf3let Tb4b4b4{ Ta5d6ff"Ta5d6ff • Tffd700$Te6edf3itTa5d6ff%Ta5d6ff" Tb4b4b4} Tff7b72?: Ta5d6ff"Ta5d6ff"
Tff7b72val Te6edf3lastHeard Tff7b72=
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3lastHeard Tff7b72!Tff7b72= T79c0ff0LTb4b4b4) Tb4b4b4{
Ta5d6ff"Ta5d6ff • Tffd700${Te6edf3DateFormatterTb4b4b4.Te6edf3formatRelativeTimeTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3lastHeardTb4b4b4)Tffd700}Ta5d6ff"
Tb4b4b4} Tff7b72else Tb4b4b4{
Ta5d6ff"Ta5d6ff"
Tb4b4b4}
Tff7b72val Te6edf3status Tff7b72= Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3isOnlineTb4b4b4) Ta5d6ff"Ta5d6ff • Tffd700${Te6edf3contextTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3car_status_offlineTb4b4b4)Tffd700}Ta5d6ff" Tff7b72else Ta5d6ff"Ta5d6ff"
Tff7b72val Te6edf3full Tff7b72= Ta5d6ff"Tffd700$Te6edf3signalLabelTffd700$Te6edf3batteryTffd700$Te6edf3lastHeardTffd700$Te6edf3statusTa5d6ff"
Tff7b72val Te6edf3short Tff7b72= Ta5d6ff"Tffd700$Te6edf3signalLabelTffd700$Te6edf3batteryTa5d6ff"
Tff7b72val Te6edf3signalColor Tff7b72= Te6edf3signalColorTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3signalQualityTb4b4b4)
Tff7b72val Te6edf3fullSpannable Tff7b72= Te6edf3SpannableStringTb4b4b4(Te6edf3fullTb4b4b4)
Te6edf3fullSpannableTb4b4b4.Te6edf3setSpanTb4b4b4(
Te6edf3ForegroundCarColorSpanTb4b4b4.Te6edf3createTb4b4b4(Te6edf3signalColorTb4b4b4)Tb4b4b4,
T79c0ff0Tb4b4b4,
Te6edf3signalLabelTb4b4b4.Te6edf3lengthTb4b4b4,
Te6edf3SpannableTb4b4b4.Te6edf3SPAN_EXCLUSIVE_EXCLUSIVETb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3shortSpannable Tff7b72= Te6edf3SpannableStringTb4b4b4(Te6edf3shortTb4b4b4)
Te6edf3shortSpannableTb4b4b4.Te6edf3setSpanTb4b4b4(
Te6edf3ForegroundCarColorSpanTb4b4b4.Te6edf3createTb4b4b4(Te6edf3signalColorTb4b4b4)Tb4b4b4,
T79c0ff0Tb4b4b4,
Te6edf3signalLabelTb4b4b4.Te6edf3lengthTb4b4b4,
Te6edf3SpannableTb4b4b4.Te6edf3SPAN_EXCLUSIVE_EXCLUSIVETb4b4b4,
Tb4b4b4)
Tff7b72return Te6edf3CarTextTb4b4b4.Te6edf3BuilderTb4b4b4(Te6edf3fullSpannableTb4b4b4)Tb4b4b4.Te6edf3addVariantTb4b4b4(Te6edf3shortSpannableTb4b4b4)Tb4b4b4.Te6edf3buildTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72fun Td2a8ffsignalLabelTb4b4b4(Te6edf3contextTb4b4b4: Te6edf3ContextTb4b4b4, Te6edf3qualityTb4b4b4: Te6edf3SignalQualityTb4b4b4)Tb4b4b4: Tffa657String Tff7b72= Tff7b72when Tb4b4b4(Te6edf3qualityTb4b4b4) Tb4b4b4{
Te6edf3SignalQualityTb4b4b4.Te6edf3EXCELLENT Tff7b72-Tff7b72> Te6edf3contextTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3car_signal_excellentTb4b4b4)
Te6edf3SignalQualityTb4b4b4.Te6edf3GOOD Tff7b72-Tff7b72> Te6edf3contextTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3car_signal_goodTb4b4b4)
Te6edf3SignalQualityTb4b4b4.Te6edf3FAIR Tff7b72-Tff7b72> Te6edf3contextTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3car_signal_fairTb4b4b4)
Te6edf3SignalQualityTb4b4b4.Te6edf3BAD Tff7b72-Tff7b72> Te6edf3contextTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3car_signal_badTb4b4b4)
Te6edf3SignalQualityTb4b4b4.Te6edf3NONE Tff7b72-Tff7b72> Te6edf3contextTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3car_signal_noneTb4b4b4)
Te6edf3SignalQualityTb4b4b4.Te6edf3UNKNOWN Tff7b72-Tff7b72> Te6edf3contextTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3car_signal_unknownTb4b4b4)
Tb4b4b4}
Tff7b72fun Td2a8ffsignalColorTb4b4b4(Te6edf3qualityTb4b4b4: Te6edf3SignalQualityTb4b4b4)Tb4b4b4: Te6edf3CarColor Tff7b72= Tff7b72when Tb4b4b4(Te6edf3qualityTb4b4b4) Tb4b4b4{
Te6edf3SignalQualityTb4b4b4.Te6edf3EXCELLENT Tff7b72-Tff7b72> Te6edf3CarColorTb4b4b4.Te6edf3GREEN
Te6edf3SignalQualityTb4b4b4.Te6edf3GOOD Tff7b72-Tff7b72> Te6edf3CarColorTb4b4b4.Te6edf3GREEN
Te6edf3SignalQualityTb4b4b4.Te6edf3FAIR Tff7b72-Tff7b72> Te6edf3CarColorTb4b4b4.Te6edf3YELLOW
Te6edf3SignalQualityTb4b4b4.Te6edf3BAD Tff7b72-Tff7b72> Te6edf3CarColorTb4b4b4.Te6edf3RED
Te6edf3SignalQualityTb4b4b4.Te6edf3NONE Tff7b72-Tff7b72> Te6edf3CarColorTb4b4b4.Te6edf3SECONDARY
Te6edf3SignalQualityTb4b4b4.Te6edf3UNKNOWN Tff7b72-Tff7b72> Te6edf3CarColorTb4b4b4.Te6edf3SECONDARY
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.05s